#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<iostream>

using namespace std;

class A

{

public:

    A(int i, int j)

    {

        x = i;

        y = j;

    }

    int sum()

    {

        return x + y;

    }

private:

    int x, y;

};



class B :public A

{

public:

    B(int i, int j, int k, int l) :A(i, j)

    {

        w = k;

        h = l;

    }

    int sum()

    {

        return w + h;

    }

private:

    int w, h;

};



void f(A& s)

{

    cout << s.sum() << endl;

}



int main()

{

    B ob(1, 3, 5, 7);

    f(ob);

    return 0;

}

////c/*lass A
//
//{
//
//    int a, b;
//
//public:
//
//    A(int i, int j)
//
//    {
//
//        a = i;
//
//        b = j;
//
//    }
//
//    void Move(int x, int y)
//
//    {
//
//        a += x;
//
//        b += y;
//
//    }
//
//    void Show()
//
//    {
//
//        cout << "(" << a << "," << b << ")" << endl;
//
//    }
//
//};
//
//
//
//class B : private A
//
//{
//
//    int x, y;
//
//public:
//
//    B(int i, int j, int k, int l) :A(i, j)
//
//    {
//
//        x = k;
//
//        y = l;
//
//    }
//
//    void Show()
//
//    {
//
//        cout << x << "," << y << endl;
//
//    }
//
//    void fun()
//
//    {
//
//        Move(3, 5);
//
//    }
//
//    void f1()
//
//    {
//
//        A::Show();
//
//    }
//
//};
//
//
//
//int main()
//
//{
//
//    A e(1, 2);
//
//    e.Show();
//
//    B d(3, 4, 5, 6);
//
//    d.fun();
//
//    d.Show();
//
//    d.f1();
//
//    return 0;
//
//}*/


//class A
//
//{
//
//public:
//
//    A(int i, int j)
//
//    {
//
//        x = i;
//
//        y = j;
//
//    }
//
//    virtual int sum()
//
//    {
//
//        return x + y;
//
//    }
//
//private:
//
//    int x, y;
//
//};
//
//
//
//class B :public A
//
//{
//
//public:
//
//    B(int i, int j, int k, int l) :A(i, j)
//
//    {
//
//        w = k;
//
//        h = l;
//
//    }
//
//    int sum()
//
//    {
//
//        return w + h;
//
//    }
//
//private:
//
//    int w, h;
//
//};
//
//
//
//void f(A& s)
//
//{
//
//    cout << s.sum() << endl;
//
//}
//
//
//
//int main()
//
//{
//
//    B ob(1, 3, 5, 7);
//
//    f(ob);
//
//    return 0;
//
//}

//class A {
//	int a;
//public:
//	virtual void print()
//	{
//		cout << "A::" << a << endl;
//	}
//	virtual~A()=0
//	{
//		cout << "A::destructor" << endl;
//	}
//};
//
//class B:public A {
//	int b;
//public:
//	virtual void print()
//	{
//		cout << "B::" << b << endl;
//	}
//	virtual~B()
//	{
//		cout << "B::destructor" << endl;
//	}
//};
//
//int main()
//{
//	A* pa = new B;
//
//	return 0;
//}
//class cube
//
//{
//
//public:
//
//    cube(int ht = 2, int wd = 5, int dp = 3)
//
//    {
//
//        height = ht;
//
//        width = wd;
//
//        depth = dp;
//
//        cout << "depth=" << depth << "construncted called" << endl;
//
//    }
//
//    ~cube()
//
//    {
//
//        cout << "depth=" << depth << "Destructed called" << endl;
//
//    }
//
//    int volume()
//
//    {
//
//        return height * width * depth;
//
//    }
//
//private:
//
//    int height, width, depth;
//
//};
//
//int main()
//
//{
//
//    cube cone(10, 20, 15), ctwo;
//
//    cout << cone.volume() << endl;
//
//    cout << ctwo.volume() << endl;
//
//    return  0;
//
//}



//class A
//
//{
//
//    int a, b;
//
//public:
//
//    A() { }
//
//    A(int i, int j) :a(i), b(j)
//
//    {
//
//        cout << "constructor\n";
//
//    }
//
//    ~A()
//
//    {
//
//        cout << a << "destructor\n";
//
//    }
//
//};
//
//int main()
//
//{
//
//    A ob2(2, 5);
//
//    A ob1(ob2);
//
//    return  0;
//
//}

//class Sample
//
//{
//
//    friend long fun(Sample s)
//
//    {
//
//        if (s.x < 2)
//
//            return 1;
//
//        return s.x * fun(Sample(s.x - 1));
//
//    }
//
//public:
//
//    Sample(long a) { x = a; }
//
//private:
//
//    long x;
//
//};
//
//int main()
//
//{
//
//    int sum = 0;
//
//    for (int i = 0; i < 4; i++)
//
//    {
//
//        sum += fun(Sample(i));
//
//    }
//
//    cout << sum;
//
//    return 0;
//
//}

